Workloads consist of computer executable entities to which the assignment of hardware and software computing resources can be controlled. It is usual to consider workloads as executing in resource containers/compartments/partitions to which computing resources may be allocated and assigned.
Workload management software functions by monitoring operating parameters (e.g., resource utilization) of workloads, predicting the resources required to keep these operating parameters of each workload near user-specified targets, and allocating and assigning resources to workloads based on these predictions and other resource management parameters. Some of these other resource management parameters (e.g., the minimum and maximum resource levels that a partition can support) are hardware or software related, while others (e.g., minimum, maximum, and owned) are specified by the user
Various means may be employed to predict the resource requirements of individual workloads. Predictions may be made based on current and/or recent previous requirements. Correlations may be sought between historical resource requirements and other workload or environmental parameters and said correlations exploited to make predictions. Standard workload management practice is to make a single resource requirement prediction for each workload, which in some sense represents the best prediction or most likely resource requirement (i.e. the resource amount most likely to have the workload meet the desired operating objective), and to allocate resources to attempt to satisfy those requirement predictions.
Allocation may be performed by constructing a list of resource requests for each workload, with a priority associated with each, defining the relative importance of satisfying that request. An example of a resource request list in order of decreasing priority follows.
1) The minimum resource required for the resource partition to which the workload is assigned.
2) The minimum resource requested by the user for the workload, i.e., the “policy” minimum.
3) The whole or part of the predicted resource demand for the workload that is less than or equal to a user-specified “owned” amount. This is called the “owned” request. An “owned” resource amount is an amount of resources that is reserved specifically for the workload's use if needed, but is available on a lower priority basis to other workloads when not needed by the owner.
4) The part of the predicted demand that is greater than the user-pecified owned amount but not exceeding the user-specified maximum. This is called the “borrow” amount. This item only applies to workloads for which the predicted amount exceeds the owned amount.
5) The part of the owned amount that is greater than the predicted amount. This item only applies to workloads for which the owned amount is greater than the predicted amount.
6) The maximum resource requested by the user for the workload, i.e., the policy maximum.
7) The maximum resource that may be assigned to the workload's resource partition.
Note that these resource requests are generally increasing in size and decreasing in priority. Any resource request that is smaller than a higher priority request is ignored in any event, since it will automatically be satisfied when the higher priority request is filled.
The allocation process distributes the available resources across these requests from the workloads in accordance with the priorities. That is, for example, resources are allocated first to satisfy the resource partition minima of all workloads, then the policy minima, the owned requests, the borrow requests, etc. Once the borrow requests are satisfied, the remainder of the allocation involves distributing the excess resource, first to give each workload its full owned amount, and then if resource remains to try to fulfill policy maxima, and then the partition maxima.
In the event that remaining resources are inadequate to satisfy the requests of all workloads at any priority level, a rule for dividing those remaining resources among the equal priority requests is used. For example, the remaining resources can be divided equally among workloads, in proportion to unfulfilled request amounts, or in proportion to user-specified weightings that function as a kind of secondary priority.
Herein, related art is described to facilitate understanding of the invention. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art.